home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-09-17 | 8.2 KB | 283 lines | [TEXT/MPS ] |
- //========================================================================================
- //
- // File: FWAcquir.h
- // Release Version: $ ODF 2 $
- //
- // Copyright: (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
-
- #ifndef FWACQUIR_H
- #define FWACQUIR_H
-
- #ifndef FWEXCDEF_H
- #include "FWExcDef.h"
- #endif
-
- #ifndef FWEXCLIB_H
- #include "FWExcLib.h"
- #endif
-
- #ifndef FWODTYPS_H
- #include "FWODTyps.h"
- #endif
-
- //========================================================================================
- // Forward Class Declarations
- //========================================================================================
-
- class ODWindow;
- class ODFrame;
- class ODPart;
- class ODRefCntObject;
- class ODShape;
- class ODTransform;
- class ODStorageUnit;
- class ODStorageUnitView;
- class ODStorageUnitCursor;
- class ODMenuBar;
- class ODDraft;
- class ODDocument;
- class ODContainer;
-
- //========================================================================================
- // class FW_CAcquiredODRefCntObject
- //========================================================================================
-
- class FW_CAcquiredODRefCntObject
- {
- public:
- FW_DECLARE_AUTO(FW_CAcquiredODRefCntObject)
-
- FW_CAcquiredODRefCntObject();
- FW_CAcquiredODRefCntObject(const FW_CAcquiredODRefCntObject& other);
- FW_CAcquiredODRefCntObject(ODRefCntObject* refCntObject);
- ~FW_CAcquiredODRefCntObject();
-
- protected:
- ODRefCntObject* PrivOrphan();
-
- protected:
- FW_CAcquiredODRefCntObject* AcquireAndAssign(ODRefCntObject* newObject);
- FW_CAcquiredODRefCntObject* Assign(ODRefCntObject* newObject);
-
- protected:
- ODRefCntObject* fODObject;
- };
-
-
- //========================================================================================
- // class FW_TAcquiredODRefCntObject
- //========================================================================================
-
- template<class t>
- class FW_TAcquiredODRefCntObject : public FW_CAcquiredODRefCntObject
- {
- public:
- FW_TAcquiredODRefCntObject() {}
- FW_TAcquiredODRefCntObject(const FW_TAcquiredODRefCntObject<t>& other) :
- FW_CAcquiredODRefCntObject(other) {}
- FW_TAcquiredODRefCntObject(t* otherPtr) :
- FW_CAcquiredODRefCntObject(otherPtr) {}
- ~FW_TAcquiredODRefCntObject() {}
-
- FW_TAcquiredODRefCntObject<t>& operator=(const FW_TAcquiredODRefCntObject<t>& other)
- {return *(FW_TAcquiredODRefCntObject<t>*)AcquireAndAssign(other.fODObject);}
- FW_TAcquiredODRefCntObject<t>& operator=(t* odObject)
- {return *(FW_TAcquiredODRefCntObject<t>*)Assign(odObject);}
-
- FW_Boolean operator==(const FW_TAcquiredODRefCntObject<t>& other) const
- {return fODObject == other.fODObject;}
- FW_Boolean operator!=(const FW_TAcquiredODRefCntObject<t>& other) const
- {return fODObject != other.fODObject;}
-
- FW_Boolean operator==(t* odObject) const
- {return fODObject == odObject;}
- FW_Boolean operator!=(t* odObject) const
- {return fODObject != odObject;}
-
- operator t*() const
- {return (t*)fODObject;}
- operator const void*() const
- {return (t*)fODObject;}
- t* operator->() const
- {return (t*)fODObject;}
-
- t* Orphan()
- {return (t*)PrivOrphan();}
- };
-
- //========================================================================================
- // Template classes typedef
- //========================================================================================
-
- #ifndef SOM_ODWindow_xh
- #include "Window.xh"
- #endif
-
- typedef FW_TAcquiredODRefCntObject<ODWindow> FW_CAcquiredODWindow;
-
- #ifndef SOM_ODFrame_xh
- #include "Frame.xh"
- #endif
-
- typedef FW_TAcquiredODRefCntObject<ODFrame> FW_CAcquiredODFrame;
-
- #ifndef SOM_ODPart_xh
- #include "Part.xh"
- #endif
-
- typedef FW_TAcquiredODRefCntObject<ODPart> FW_CAcquiredODPart;
-
- #ifndef SOM_ODShape_xh
- #include <Shape.xh>
- #endif
-
- typedef FW_TAcquiredODRefCntObject<ODShape> FW_CAcquiredODShape;
-
- #ifndef SOM_ODStorageUnit_xh
- #include <StorageU.xh>
- #endif
-
- typedef FW_TAcquiredODRefCntObject<ODStorageUnit> FW_CAcquiredODStorageUnit;
-
- #ifndef SOM_ODTransform_xh
- #include <Trnsform.xh>
- #endif
-
- typedef FW_TAcquiredODRefCntObject<ODTransform> FW_CAcquiredODTransform;
-
- #ifndef SOM_ODMenuBar_xh
- #include <MenuBar.xh>
- #endif
-
- typedef FW_TAcquiredODRefCntObject<ODMenuBar> FW_CAcquiredODMenuBar;
-
- #ifndef SOM_ODDraft_xh
- #include <Draft.xh>
- #endif
-
- typedef FW_TAcquiredODRefCntObject<ODDraft> FW_CAcquiredODDraft;
-
- #ifndef SOM_ODDocument_xh
- #include <Document.xh>
- #endif
-
- typedef FW_TAcquiredODRefCntObject<ODDocument> FW_CAcquiredODDocument;
-
- #ifndef SOM_ODContainer_xh
- #include <ODCtr.xh>
- #endif
-
- typedef FW_TAcquiredODRefCntObject<ODContainer> FW_CAcquiredODContainer;
-
- //========================================================================================
- // class FW_CAcquireODStorageUnitView
- //========================================================================================
-
- class FW_CAcquireODStorageUnitView
- {
- public:
- FW_DECLARE_AUTO(FW_CAcquireODStorageUnitView)
-
- FW_CAcquireODStorageUnitView(Environment* ev,
- ODStorageUnit* su,
- ODPropertyName propertyName,
- ODPositionCode propertyPosCode,
- ODValueType valueType,
- ODValueIndex valueIndex,
- ODPositionCode valuePosCode); // Focus and create the storageView
- FW_CAcquireODStorageUnitView(Environment* ev, ODStorageUnit* su); // Suppose that already focused
- ~FW_CAcquireODStorageUnitView();
-
- operator ODStorageUnitView*() const
- {return fSUView;}
- ODStorageUnitView* operator->() const
- {return fSUView;}
-
- private:
- FW_CAcquireODStorageUnitView(const FW_CAcquireODStorageUnitView& type);
- FW_CAcquireODStorageUnitView& operator=(const FW_CAcquireODStorageUnitView& type);
-
- private:
- ODStorageUnitView* fSUView;
- };
-
- //========================================================================================
- // class FW_CAcquireODISOStr
- //========================================================================================
-
- class FW_CAcquireODISOStr
- {
- public:
- FW_DECLARE_AUTO(FW_CAcquireODISOStr)
-
- FW_CAcquireODISOStr();
- FW_CAcquireODISOStr(ODISOStr type);
- FW_CAcquireODISOStr(const FW_CAcquireODISOStr& other);
- ~FW_CAcquireODISOStr();
-
- FW_CAcquireODISOStr& operator=(ODISOStr ISOStr);
- FW_CAcquireODISOStr& operator=(const FW_CAcquireODISOStr& other);
-
- operator ODISOStr() const
- {return fODISOStr;}
-
- operator const void*() const
- {return (const void*)fODISOStr;}
-
- protected:
- void PrivDeleteODISOStr();
-
- protected:
- ODISOStr fODISOStr;
- };
-
- //========================================================================================
- // class FW_CAcquireODPropertyName
- //========================================================================================
-
- class FW_CAcquireODPropertyName : public FW_CAcquireODISOStr
- {
- public:
- FW_DECLARE_AUTO(FW_CAcquireODPropertyName)
-
- FW_CAcquireODPropertyName(Environment* ev, ODStorageUnit* su);
- FW_CAcquireODPropertyName(Environment* ev, ODStorageUnitView* suView);
- FW_CAcquireODPropertyName(Environment* ev, ODStorageUnitCursor* suCursor);
-
- ~FW_CAcquireODPropertyName();
-
- operator ODPropertyName() const
- {return fODISOStr;}
-
- private:
- FW_CAcquireODPropertyName(const FW_CAcquireODPropertyName& type);
- FW_CAcquireODPropertyName& operator=(const FW_CAcquireODPropertyName& type);
- };
-
- //========================================================================================
- // FW_CopyAndRelease
- //========================================================================================
-
- //########################################################################################
- // SCpp Hack
- // Work around SCpp 8.0.3 bug - importing overloaded functions doesn't work.
- // Replace overloaded functions with normal functions with different names.
- // Use inline overloaded functions which turn around and call the renamed
- // functions so client code isn't affected.
- //########################################################################################
-
- ODShape* FW_PrivCopyAndRelease_Shape(Environment* ev, ODShape* shapeToCopy);
- ODTransform* FW_PrivCopyAndRelease_Transform(Environment* ev, ODTransform* transformToCopy);
-
- inline ODShape* FW_CopyAndRelease (Environment* ev, ODShape* shapeToCopy) {
- return FW_PrivCopyAndRelease_Shape (ev, shapeToCopy);
- }
-
- inline ODTransform* FW_CopyAndRelease (Environment* ev, ODTransform* transformToCopy) {
- return FW_PrivCopyAndRelease_Transform (ev, transformToCopy);
- }
-
- #endif
-